package cn.source.zk.service;

import cn.source.zk.domain.entity.Device;
import cn.source.zk.domain.vo.DeviceChannelVO;
import cn.source.zk.domain.vo.DeviceSortVO;

import java.util.List;
import java.util.Map;

public interface IZkDeviceService {
    /**
     * 获取设备主表分页列表
     *
     * @param device
     * @return
     */
    List<Device> listPage(Device device);

    /**
     * 新增设备
     *
     * @param device
     * @return
     */
    int add(Device device);

    /**
     * 根据num查询设备
     *
     * @param num
     * @return
     */
    Device getByNum(Long num);

    /**
     * 修改设备
     *
     * @param device
     * @return
     */
    int edit(Device device);

    /**
     * 批量删除设备
     *
     * @param nums
     * @return
     */
    int removeBatch(List<Long> nums);

    int editBatchStates(List<String> zhGuids);

    List<DeviceChannelVO> listPageFold(Device device, List<Long> substationsNumList);

    List<Device> getByDevModel(List<Long> nums);

    List<Device> getBySubstationNums(List<Long> nums);

    List<Device> selectDeviceByNotAuth(Device device);


    List<Device> getByDevNum(String devNum);
    Map<String, Object> getDeviceStats();
    /**
     * 获取已有的设备排序
     *
     * @return
     */
    List<DeviceSortVO> getSortList();

    /**
     * 获取丢失信号的设备
     */
    List<Device> selectLostSignalDevices();
}
